import Vue from 'vue'
import Vuex from 'vuex'
import {
  saveToken,
  removeToken,
  getToken
} from '../utils/token'
import { userLogin } from '../views/login/user'

Vue.use(Vuex)

//导入用户请求的方法
import { getUserInfoApi } from '../views/mine/mine';


export default new Vuex.Store({
  state: {
    token: '', //如果在本地储存了token 直接读取
    // 用户基本信息
    userInfo: {},

  },
  mutations: {
    // 保存token 内存中
    Set_Token(state, payload) {
      state.token = payload
      // 保存到本地
      saveToken(payload)
    },
    //删除token
    Remove_Token(state) {
      state.token = ''
      removeToken()

    },

    //保存用户信息
    SET_USERINFO(state, payload) {
      state.userInfo = payload
    },

    //删除用户信息
    REMOVE_USERINFO(state) {
      state.userInfo = {}
    }
  },
  // 执行异步
  actions: {
    async login(context, payload) {
      //请求登录接口
      const res = await userLogin(payload)
      // console.log(res.data.data.jwt);
      context.commit('Set_Token', res.data.data.jwt)
    },
    //退出登录
    async logout(context) {
      context.commit('Remove_Token')
      context.commit('REMOVE_USERINFO')
    },
    //获取用户信息接口
    async getUserInfo(context) {
      const res = await getUserInfoApi()
      // console.log(res);
      context.commit('SET_USERINFO', res.data.data)
    },
  },
  modules: {}
})